Web services are Web-based interfaces that can be integrated into business scenarios of a company based on open and commonly accepted standards. Using Web services enables a user to combine functions implemented on different software components into a single process. Web services are self-contained, modularized, executable entities that can be published, searched for, and accessed across a network. For a caller or sender, a Web service is a black box that may require input and delivers a result. Companies can extend their solutions by exposing and integrating Web services.
Web services can be exposed from a server side of a client-server communication and consumed by the client side of the client-server communication. The Web services are consumed by Web services clients (or proxies). The Web services clients need to be compatible with the Web services they are consuming. However, the Web services clients can be implemented in different platforms and programming languages than the Web services themselves. For example, the Web services clients can be implemented in Java, ABAP, .NET, and so on, while the Web services can be created in Java only. The different Web services consumers (clients) have to interoperate with the exposed Web services. Thus, all exposed Web services from the server side have to be tested for interoperability with the Web services clients on the client side based on the different technologies. The provided Web services by a vendor could be hundreds and testing each single Web service's interoperability with a given Web service client could take enormous amount of time and the efforts may need to be repeated each time a change is introduced in the Web services.